# Lispy-Fennel
Lispy-Fennel (LF) is a high performance functional library for
[Fennel](https://fennel-lang.org) with the goal of being simple, reliable, and
easy-to-use.

# Dependencies
- Lua 5.3
- Fennel
- make

# Build/Install
## Build
To create the `lispy-fennel.lua` file, run:
```
make
```

### Install
To copy the file into the stand Lua 5.3 directory, run:
```
make install
```

# Modules
LF is broken up into modules that can be `required` in your Fennel
program. Here is a brief explanation of each:

## `str`
`str` is the string module. It is an addition to the standard Lua `string`
library. It contains useful functions such as `split`, that allows you to split
a string by based on another string; `take`, that returns a substring between
the first character and whatever index you pass; and `drop`, that returns a
substring from the `cdr` of whatever index you pass.

## `list`
`list` is the list module. It contains functions that are specific for list and
*cannot* be used on tables. It contains useful functions such as `append`, which
takes 2 lists and puts them together; `last`, which returns the last element in
the list; and `reverse`, that reverses the order of the list.

## `tbl`
`tbl` is the table module. It contains function that are specific for tables
**and** lists. This is a rather small module but has functions such as `find`,
for checking if a value is in a table, and `empty?`, to check is a table is
empty.

## `iteration`
`iteration` is a module that contains all your favorite iterators that aren't
found in Fennel. For example: `map`, `filter`, `filter-map`, and `reduce`.

# License
Copyright © 2020 Kevin "The Nuclear" Bloom

Released under the MIT license
